using System;
using System.Collections.Generic;
using System.Text;

namespace PantheonSoftware.InfoCollection
{
    //// <summary>
    //// Enumerator which controls how updates are executed.
    //// </summary>
    //// <value>
    //// There are 4 possible update routes depending on:
    ////   1. whether a transaction should be started or not and ,,
    ////   2. whether there should be a recursive update through the
    ////      class hierarchy
    //// 
    //// For instance, if a recursive update is executed, then is the
    //// update statement is called on the CustomerInfoCollection
    //// \object, it will update the OrderInfoCollection and any
    //// OrderItemInfoCollection objects.
    //// </value>
    //// <returns>
    //// \returns a DataSet of modified data
    //// </returns>
    //// <remarks>
    //// The accompanying code generated from the CodeSmith templates,
    //// although working, is an example only and may not implement
    //// your particular business rule. 
    //// </remarks>                                                   
    [CLSCompliant(true)]
    public enum UpdateType
    {
        /// <summary>
        /// The update will perform an update only on the current collection
        /// </summary>
        SingleUpdate,
        /// <summary>
        /// The update will drill down into sub-collections. No transaction is started.
        /// </summary>
        RecursiveUpdate,         
        /// <summary>
        /// The update will update only this collection and will start/complete a transaction 
        /// </summary>
        SingleUpdateWithTransaction,
        //// <summary>
        //// This update will drilldown into a sub-collection. A
        //// transaction will be started across objects. 
        //// </summary>                                         
        RecursiveUpdateWithTransaction
    }
}
